package com.midea.designPatterns;

/**
 * @description：静态内部类实现单例
 * 这种写法仍然使用JVM本身机制保证了线程安全问题；由于 SingletonHolder 是私有的，除了 getInstance() 之外没有办法访问它，因此它是懒汉式的；
 * 同时读取实例的时候不会进行同步，没有性能缺陷；也不依赖 JDK 版本。
 * 这种方法也是《Effective Java》上所推荐的。
 * 参考：http://wuchong.me/blog/2014/08/28/how-to-correctly-write-singleton-pattern/
 * @author: wangwl23
 * @create: 2021-08-16 15:01
 */
public class Singleton_StaticNestedClass {
    private static class SingletonHolder {
        private static final Singleton_StaticNestedClass INSTANCE = new Singleton_StaticNestedClass();
    }
    private Singleton_StaticNestedClass(){}
    private static final Singleton_StaticNestedClass getInstance(){
        return SingletonHolder.INSTANCE;
    }
}
